import { BattleUnit } from '../BattleUnit';
import { Equipment } from '../Equipment';
import { AttributeType } from '../AttributeType';
import { EquipmentConfigTable } from '../EquipmentConfig';

// 测试装备效果
export function testEquipmentEffects() {
    console.log('=== 装备效果测试 ===');

    // 创建战斗单位
    const unit = new BattleUnit();
    
    // 设置基础属性
    unit.setAttribute(AttributeType.HP, 1000);
    unit.setAttribute(AttributeType.Attack, 100);
    unit.setAttribute(AttributeType.Defense, 50);
    
    console.log('初始状态:');
    console.log(`生命值: ${unit.getAttributeValue(AttributeType.HP)}`);
    console.log(`攻击力: ${unit.getAttributeValue(AttributeType.Attack)}`);
    console.log(`防御力: ${unit.getAttributeValue(AttributeType.Defense)}`);
    console.log('-------------------');

    // 获取装备配置表实例
    const configTable = EquipmentConfigTable.getInstance();

    // 测试血刃
    console.log('装备血刃:');
    const bloodthirstyBlade = new Equipment('bloodthirsty_blade');
    unit.equip(bloodthirstyBlade);
    console.log(`装备后攻击力: ${unit.getAttributeValue(AttributeType.Attack)}`); // 应该是 100 + (1000 * 0.2) = 300

    // 测试生命值变化对攻击力的影响
    console.log('\n生命值变化测试:');
    unit.takeDamage(500); // 生命值减少到500
    console.log(`当前生命值: ${unit.getAttributeValue(AttributeType.HP)}`);
    console.log(`当前攻击力: ${unit.getAttributeValue(AttributeType.Attack)}`); // 应该是 100 + (500 * 0.2) = 200

    // 测试守护者之盾
    console.log('\n装备守护者之盾:');
    const guardianShield = new Equipment('guardian_shield');
    unit.equip(guardianShield);
    console.log(`当前生命值: ${unit.getAttributeValue(AttributeType.HP)}`); // 应该是 500 + 500 = 1000
    console.log(`当前防御力: ${unit.getAttributeValue(AttributeType.Defense)}`); // 应该是 50 + (1000 * 0.15) = 200

    // 测试疾风之靴
    console.log('\n装备疾风之靴:');
    const swiftBoots = new Equipment('swift_boots');
    unit.equip(swiftBoots);
    console.log(`移动速度: ${unit.getAttributeValue(AttributeType.Speed)}`); // 应该是 0 + (0 * 0.3) = 0
    console.log(`攻击速度: ${unit.getAttributeValue(AttributeType.AttackSpeed)}`); // 应该是 0 + (0 * 0.2) = 0

    // 测试装备切换
    console.log('\n切换回血刃:');
    unit.equip(bloodthirstyBlade);
    console.log(`当前生命值: ${unit.getAttributeValue(AttributeType.HP)}`);
    console.log(`当前攻击力: ${unit.getAttributeValue(AttributeType.Attack)}`); // 应该是 100 + (1000 * 0.2) = 300
    console.log(`当前防御力: ${unit.getAttributeValue(AttributeType.Defense)}`); // 应该恢复为 50
}

// 运行测试
testEquipmentEffects(); 